package com.tvunetworks.center.device.constant;


import com.tvunetworks.center.common.constant.ReceiverCommandConstant;
import com.tvunetworks.center.device.model.Command;

public enum CommandConstant {
    /**
     *  START_LIVE
     */
    START_LIVE(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE, ReceiverCommandConstant.OperationType.START_LIVE),
    /**
     *  RESTART_LINUX_R
     */
    RESTART_LINUX_R(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE, ReceiverCommandConstant.OperationType.RESTART_LINUX_R),
    /**
     *  REBOOT_LINUX
     */
    REBOOT_LINUX(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE, ReceiverCommandConstant.OperationType.REBOOT_LINUX),
    /**
     * STOP_LIVE
     */
    STOP_LIVE(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE, ReceiverCommandConstant.OperationType.STOP_LIVE),
    /**
     *  SET_BITRATE_AND_DELAY
     */
    SET_BITRATE_AND_DELAY(ReceiverCommandConstant.CategoryId.SETTING, ReceiverCommandConstant.OperationType.SET_BITRATE_AND_DELAY),
    /**
     * SET_MONITOR_SLOTS
     */
    SET_MONITOR_SLOTS(ReceiverCommandConstant.CategoryId.ADAPTER, ReceiverCommandConstant.OperationType.SET_MONITOR_SLOTS),
    /**
     * RESET_MONITOR
     */
    RESET_MONITOR(ReceiverCommandConstant.CategoryId.ADAPTER, ReceiverCommandConstant.OperationType.RESET_MONITOR),
    /**
     * GET_ECO_PREVIEW
     */
    GET_ECO_PREVIEW(ReceiverCommandConstant.CategoryId.VOIP_VOLUME,ReceiverCommandConstant.OperationType.PLAY_BACK_MODEL),
    /**
     * UPLOAD_INFO
     */
    UPLOAD_INFO(ReceiverCommandConstant.CategoryId.GetTimeLockInfo,ReceiverCommandConstant.OperationType.QUERY_KERNEL_STATE),
    /**
     * EXIT_ECO_PREVIEW
     */
    EXIT_ECO_PREVIEW(ReceiverCommandConstant.CategoryId.VOIP_VOLUME,ReceiverCommandConstant.OperationType.DELETE_COPIER),
    /**
     * GET_SMART_CAPTION_SETTINGS
     */
    GET_SMART_CAPTION_SETTINGS(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.PRODUCER_ADD_IP_SOURCE),
    /**
     * SET_SMART_CAPTION_SETTINGS
     */
    SET_SMART_CAPTION_SETTINGS(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.REMOVE_FILE_SHIM),
    /**
     * GET_REPLACE
     */
    GET_REPLACE(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.ADD_COPIER),
    /**
     * GET_SCHEDULED
     */
    GET_SCHEDULED(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.CONFIG_MONITOR),
    /**
     * SET_SCHEDULED
     */
    SET_SCHEDULED(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.SET_FILE_INFO),
    /**
     * SET_REPLACE
     */
    SET_REPLACE(ReceiverCommandConstant.CategoryId.SMART_CAPTION,ReceiverCommandConstant.OperationType.DELETE_COPIER),
    /**
     * GET_LOGO_URL
     */
    GET_LOGO_URL(ReceiverCommandConstant.CategoryId.EXTERNAL_ENCODER,ReceiverCommandConstant.OperationType.GET_LOGO_URL),

    /**
     * GET_VERSION_R
     */
    GET_VERSION_R(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.UPLOAD_INFO),
    /**
     * ECO_PREVIEW
     */
    ECO_PREVIEW(ReceiverCommandConstant.CategoryId.VOIP_VOLUME,ReceiverCommandConstant.OperationType.START_LIVE),
    /**
     * QUERY_RECEIVER_INFO
     */
    QUERY_RECEIVER_INFO(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE, ReceiverCommandConstant.OperationType.QUERY_RECEIVER_INFO),
    /**
     * SET_MUTE
     */
    SET_MUTE(ReceiverCommandConstant.CategoryId.EXTERNAL_ENCODER,ReceiverCommandConstant.OperationType.SET_MUTE),
    /**
     * SET_VOLUME
     */
    SET_VOLUME(ReceiverCommandConstant.CategoryId.EXTERNAL_ENCODER,ReceiverCommandConstant.OperationType.SET_VOLUME),
    /**
     * SET_STUDIO_ENCODER_LOGO
     */
    SET_STUDIO_ENCODER_LOGO(ReceiverCommandConstant.CategoryId.SHARE_VIDEO,ReceiverCommandConstant.OperationType.UPLOAD_LIVE_LOGO_BASE64),
    /**
     * SET_STUDIO_ENCODER_LOGO_CLEAR
     */
    SET_STUDIO_ENCODER_LOGO_CLEAR(ReceiverCommandConstant.CategoryId.SHARE_VIDEO,ReceiverCommandConstant.OperationType.CLEAR_LIVE_LOGO_BASE64),
    /**
     * ADD_GLINK
     */
    ADD_GLINK(ReceiverCommandConstant.CategoryId.WEBR_GLINK,ReceiverCommandConstant.OperationType.ADD_GLINK),
    /**
     * EDIT_GLINK
     */
    EDIT_GLINK(ReceiverCommandConstant.CategoryId.WEBR_GLINK,ReceiverCommandConstant.OperationType.EDIT_GLINK),
    /**
     * DELETE_GLINK
     */
    DELETE_GLINK(ReceiverCommandConstant.CategoryId.WEBR_GLINK,ReceiverCommandConstant.OperationType.DELETE_GLINK),
    /**
     * WEBR_SOURCE_TYPE
     */
    WEBR_SOURCE_TYPE(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.QUERY_SOURCE_TYPE),
    /**
     * GET_SOURCE_TYPE
     */
    GET_SOURCE_TYPE(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.QUERY_SOURCE_BY_TYPE),
    /**
     * SET_OVERLAY
     */
    SET_OVERLAY(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE,ReceiverCommandConstant.OperationType.SET_OVERLAY),

    /**
     * START_OVERLAY
     */
    START_OVERLAY(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE,ReceiverCommandConstant.OperationType.START_OVERLAY),

    /**
     * STOP_OVERLAY
     */
    STOP_OVERLAY(ReceiverCommandConstant.CategoryId.PACK_RECEIVER_CORE,ReceiverCommandConstant.OperationType.STOP_OVERLAY),
    /**
     * GET_MODULE_INFO
     */
    GET_MODULE_INFO(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_MODEULE_INFO),
    /**
     * GET_CORE_INFOS
     */
    GET_CORE_INFOS(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_CORE_INFO),
    /**
     * GET_ALL_STATUS
     */
    GET_ALL_STATUS(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_ALL_STATUS),
    /**
     * SWITCH_PACK_ENCODER_SOURCE
     */
    SWITCH_PACK_ENCODER_SOURCE(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_SWITCH_PACKENCODER_SOURCE),
    /**
     * SWITCH_CODE_C
     */
    SWITCH_CODE_C(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_SWITCH_CODEC),
    /**
     * GET_COMMAND_CONFIG
     */
    GET_COMMAND_CONFIG(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_GET_COMMAND_CONFIG),
    /**
     * UPDATE_COMMAND_CONFIG
     */
    UPDATE_COMMAND_CONFIG(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_UPDATE_COMMAND_CONFIG),
    /**
     * GET_BITRATE_RANGE
     */
    GET_BITRATE_RANGE(ReceiverCommandConstant.CategoryId.WEBR_GLINK_ENCODER,ReceiverCommandConstant.OperationType.GLINK_GET_BITRATE_RANGE),
    /**
     * QUERY_SDIIN_CONFIG
     */
    QUERY_SDIIN_CONFIG(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.QUERY_CONFIG),
    /**
     * SWITCH_AREA
     */
    SWITCH_AREA(ReceiverCommandConstant.CategoryId.SWITCH_AREA,ReceiverCommandConstant.OperationType.SWITCH_AREA),
    /**
     * CORE_INFO
     */
    CORE_INFO(ReceiverCommandConstant.CategoryId.SWITCH_AREA,ReceiverCommandConstant.OperationType.CORE_INFO),
    /**
     * GET_LIVE_VOIP
     */
    GET_LIVE_VOIP(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.GET_LIVE_VOIPS),
    /**
     * SET_LIVE_VOIP
     */
    SET_LIVE_VOIP(ReceiverCommandConstant.CategoryId.WEBR_SOURCE_TYPE,ReceiverCommandConstant.OperationType.SET_LIVE_VOIPS),
    /**
     * VOIP_VOLUME
     */
    VOIP_VOLUME(ReceiverCommandConstant.CategoryId.VOIP_VOLUME,ReceiverCommandConstant.OperationType.VOIP_VOLUME),
    /**
     * GRID_ENCODE_URL
     */
    GRID_ENCODE_URL(ReceiverCommandConstant.CategoryId.GRID_URL,ReceiverCommandConstant.OperationType.GRID_URL),
    /**
     * QUERY_VOICE_VALUE
     */
    QUERY_VOICE_VALUE("2152867840", "200"),
    /**
     * PLAY_BACK_MODEL
     */
    PLAY_BACK_MODEL("2152857600", "103"),
    /**
     * REC_TIME_REMAIN
     */
    REC_TIME_REMAIN("2152867584", "101"),
    /**
     * QUERY_MODE_LIST
     */
    QUERY_MODE_LIST("2152866048", "101"),
    /**
     * QUERY_MONITOR_INFO
     */
    QUERY_MONITOR_INFO("2152865792", "101"),
    /**
     * QUERY_EXTERNAL_DATA_NEW
     */
    QUERY_EXTERNAL_DATA_NEW("2152870144", "101"),
    /**
     * QUERY_EXTERNAL_DATA
     */
    QUERY_EXTERNAL_DATA("2152870144", "200"),
    /**
     * GET_CORE_INFO
     */
    GET_CORE_INFO("2152868608", "101"),
    /**
     * GET_SMART_CAPTION
     */
    GET_SMART_CAPTION("2152868608", "200"),
    /**
     * QUERY_SHARE_RINFO
     */
    QUERY_SHARE_RINFO("2152870656", "101"),
    /**
     * QUERY_ALL_IFB_STATUS
     */
    QUERY_ALL_IFB_STATUS("2152861696", "1100"),
    /**
     * QUERY_KERNEL_STATE
     */
    QUERY_KERNEL_STATE("2152857600", "102"),
    /**
     * QUERY_BATTERY_INFO
     */
    QUERY_BATTERY_INFO("2152861696", "110"),

    ;
    private final String categoryId;
    private final String operationType;

     CommandConstant(String categoryId, String operationType) {
        this.categoryId = categoryId;
        this.operationType = operationType;
    }

    /**
     *
     * @return Command
     */
    public Command getCommand() {
        Command command = new Command(categoryId, operationType);
        return command;
    }

    public String getCategoryId(){
        return categoryId;
    }

    public String getOperationType(){
        return operationType;
    }
}
